package io.datajek.springbasics.movierecommendersystem.lesson8;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ApplicationContext;

import java.util.Arrays;
import java.util.concurrent.Callable;

@SpringBootApplication
public class MovieRecommenderSystemApplication {
	public static void main(String[] args) {
		//ApplicationContext负责管理Bean和依赖关系
		ApplicationContext appContext = SpringApplication.run(MovieRecommenderSystemApplication.class, args);

		//从ApplicationContext中三次获取Singleton Bean
		CollaborativeFilter cbf1 = appContext.getBean(CollaborativeFilter.class);
		CollaborativeFilter cbf2 = appContext.getBean(CollaborativeFilter.class);
		CollaborativeFilter cbf3 = appContext.getBean(CollaborativeFilter.class);

		//从ApplicationContext中三次获取Singleton Bean
		ContentBasedFilter cbf4 = appContext.getBean(ContentBasedFilter.class);
		ContentBasedFilter cbf5 = appContext.getBean(ContentBasedFilter.class);
		ContentBasedFilter cbf6 = appContext.getBean(ContentBasedFilter.class);

		System.out.println(cbf1);
		System.out.println(cbf2);
		System.out.println(cbf3);

		System.out.println(cbf4);
		System.out.println(cbf5);
		System.out.println(cbf6);
	}

}
